In a computing system like a computing device, such as a computer, there are generally two types of storage devices: persistent storage devices, such as hard disk drives and solid-state drives (SSDs), and storage devices that are being used as system memory within the computing system. Storage devices that are used as system memory traditionally have been volatile semiconductor memory devices, such as dynamic random-access memory (DRAM) like dual-inline memory modules (DIMMs). More recently, other types of storage devices have been used as system memory within computing systems, such as non-volatile memory like non-volatile DIMMs (NVDIMMs). One type of NVDIMM, for instance, is NVDIMM-F, which is a flash memory device.
The system memory of a computing system is generally used to store at least portions of actively running computer programs on the computing system, and at least portions of the data that these programs are currently using. The hard disk drive, SSD, or other type of persistent storage device is used to store the computer programs even when they are not running. When the programs are initiated, at least a portion thereof is loaded from the hard disk drive, SSD, or other type of persistent storage device into the system memory. When data is not currently being used by a computer program, the data may be stored on the hard disk drive, SSD, or other type of persistent storage device, and is similarly loaded into the system memory when the data is accessed by a program.